查看原文
其他

一行代码扫出“敬业福”

2017-01-24 crossin Crossin的编程教室

好吧,我承认有那么一点标题党。不过说起标题党这事儿,咱先来看看支付BAO,最近几天搞得全国人民都不安心工作的“集五福”:



好(shua)好(hou)的“集五福”活动,怎么又叫 AR 了?


我们来让李老板家的百科解释下什么是 AR:


增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。


可是,哥好歹当年在学校也是研究计算机视觉和图形学出身啊。据我所知的 AR 的画风不是应该这样:



或者这样的嘛:



怎么就变成摄像头识别文字了?


看着手中的 App,我不禁开始怀疑,难道我是学了假的 AR……



后来旁边人跟我说,你没看扫到“福”之后有个烟花的效果吗?人家这就是虚实结合!



好吧!这 OCR 文字识别+五毛特效,我也可以分分钟给你搞一个啊。


说干就干。想起咱们教室的“编程实例”中就有一个“验证码识别”的例子,直接改改就行。



顺便再科普一下 OCR:


OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程


反正我只是打算识别出“福”字,那么问题就很简单了。装备上别人已经打造好的工具:


  1. 安装 PIL 库

    pip install pillow

  2. 下载安装 ocr 的库,这里我们选择 tesseract-ocr

    https://github.com/tesseract-ocr/tesseract

  3. 下载安装Python 的 tesseract 驱动模块

    pip install pytesseract

  4. 下载 tesseract 的简体中文训练数据集(放在 tessdata 目录里)

    https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata


然后做一张带有文字的图片:



最后,一行代码识别文字(import 啥的当然不算数啦!):

from PIL import Image

import pytesseract

print pytesseract.image_to_string(Image.open('/yout/path/to/fu.jpg'), lang='chi_sim')



搞定。


核心功能都有了,你再加上摄像头拍摄、图像处理、反馈特效,也只是时间问题。大过年的,我也编不下去了。


当然,这种通用 ocr 模块并不总那么靠谱,比如:



正所谓,祸兮福所倚,福兮祸所伏,大概就是这个道理吧……


什么?你说我这个识别太弱了?可是马云爸爸家的也没好到哪里啊!



所以你真以为我会去满世界的找“福”字吗?年轻人啊,还是应该多提高自己的姿势水平哟。


最后,就用这段小代码给大家送上新年祝福。希望各位勤劳好学的宝宝们,在酒足饭饱之后、吐槽春晚之余、麻将点炮之前,别忘了给家中有理想有追求的小伙伴们推荐我们的公众号“Crossin的编程教室”。


来年我们一起用代码躁起来!







近期文章推荐阅读:

Python 爬虫爬取美剧网站

如何用 GUI 提高 python 程序的颜值?

个人开发者如何申请微信小程序

还你系统空间的 Python 小程序

今天,你抢到票了吗?

爆款游戏《贪吃蛇大作战》的 Python 实现

简单三步,用 Python 发邮件

NBA 举办编程马拉松 - 数据分析时代的到来

Python-Excel 模块哪家强?

想用 Python 做数据分析?先玩玩这个再说

用 Python 实现你的量化交易策略




Crossin的编程教室

crossincode.com

QQ 群:453300655

个人微信:crossin11

点击左下角“阅读原文”,查看更多学习资源

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存